1. Field of the Invention
The present disclosure relates to software systems, and more specifically to a method and apparatus for simplifying maintenance of large software systems.
2. Related Art
A software system refers to a collection of modules, which when executed provide one or more closely coupled user applications. As is well known in the relevant arts, a module refers to a portion of a user application, which is independently stored/compiled, etc., before being linked with other modules to form machine executable instructions of the software system. The software system (user applications) executes in a run-time environment (operating system, etc.), which can be shared by several software systems, as is also well known in the relevant arts.
There is an increasing need to provide large software systems due to reasons such as enhanced complexity of software applications, etc. Larger software systems contain more instructions (at machine executable level or higher levels) than smaller software systems for the same run-time environment. The instructions are partitioned into several modules, as noted above.
Maintenance of a software system generally entails making changes to different modules (or deletion/addition of some modules), typically for addressing identified problems during development of the software system and/or identified by a user of the software system post implementation, providing new (typically incremental) features or for performance reasons, and/or addressing other quality assurance (QA) issues. The complexity of maintenance of software systems is generally more for larger software systems.
Various aspects of the present invention simplify maintenance of software systems, as described below with examples.
In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.